pub fn convert_base(num_str: &str, to_base: u32) -> String {
    // TODO: 这里写逻辑
   // 1. 检查输入的合法性，确保目标进制在 2 到 16 之间
   assert!(to_base >= 2 && to_base <= 16, "目标进制必须在 2 到 16 之间");

   // 2. 确定输入数的进制，假设输入的数是带有进制标识的，如 "9(10)"
   let (num_str, from_base) = if let Some(pos) = num_str.find('(') {
       let base_str = &num_str[pos + 1..num_str.len() - 1];
       let num_str = &num_str[..pos];
       (num_str, base_str.parse::<u32>().expect("无效的进制格式"))
   } else {
       (num_str, 10)  // 默认 10 进制
   };

   // 3. 将输入字符串数值转换为 10 进制
   let decimal_value = u32::from_str_radix(num_str, from_base)
       .expect("无效的输入数值或与源进制不匹配");

   // 4. 将 10 进制数转换为目标进制
   if decimal_value == 0 {
       return "0".to_string();
   }
   
   let mut result = String::new();
   let mut value = decimal_value;

   while value > 0 {
       let remainder = value % to_base;
       result.push(std::char::from_digit(remainder, to_base).unwrap());
       value /= to_base;
   }

   // 由于结果是逆序的，需要翻转
   result.chars().rev().collect()
}
